Accelerated scrolling

ABSTRACT

A system and method for accelerating scrolling of a display is disclosed. When a wheel of a wheeled pointing device is actuated by a user at a first rotational rate, the display in a window scrolls up or down one line at a time. When the wheel is rotated at a second rotational rate, the display in the window scrolls up or down multiple lines at a time. In additional embodiments, the scrolling technique shifts from one line at a time/multiple lines at a time to a page or pages at a time when the wheel is rotated for at a rotational rate for a minimum period of time.

This is a Continuation Application of co-pending U.S. patent application Ser. No. 09/407,946 filed Sep. 29, 1999 in which the contents of said application are hereby incorporated herein by reference.

BACKGROUND

1. Technical Field

The disclosure generally relates to user actuated pointing devices for use with a computer. More particularly, the disclosure relates to enhancing the scrolling schema of wheeled mice.

2. Related Art

The computer mouse has simplified the computer-human interface. Before the computer mouse, many users were confined to interacting with a computer through the use of a command line interface (CLI as is known in the art). The computer mouse (also commonly referred to simply as “the mouse”) has, in recent years, been improved upon with the inclusion of a wheel on the top of the mouse. An example of a wheeled mouse is shown in FIG. 1. The function of the wheel 106 is to scroll the text or document or image located below a displayed cursor 113 shown on a visual display device 112. The wheel is preferably linked to an optically encoded wheel for sensing the rotational location of the wheel 106. To allow for feedback to the user, the wheel contains a number of notches (not shown for simplicity). When rotated, a user is presented with tactile feedback of the distance rotated through sensing the number of notches rotated by the wheel. The function of the wheel 106 is interpreted through signals sent from mouse 101 through cable 110 to computer 109 having memory 114 and processor 115. Shown for completeness is keyboard 116, which is generally used in combination with mouse 101 for various operations as are known in the art. For example, rotating the wheel away from the user may scroll the underlying displayed content down so as to show another portion of the displayed content immediately preceding the originally displayed content. Likewise, rotating the wheel toward the user may scroll the underlying displayed content up.

A user may specify a scrolling mode of either scrolling by a fixed number of lines (referred to herein as the “line-scrolling mode”) or scrolling by page (referred to herein as the “page-scrolling mode). To change from one scrolling mode, or to modify the number of lines to scroll in the line-scrolling mode, a user navigates a series of windows to a preferences option list for the wheeled mouse. In general, the preferences page allows selection of the scrolling mode as well as a designation of the number of lines when a line-scrolling mode is selected.

Other features of a wheeled mouse and alternative techniques of navigating a display through the use of the wheeled mouse are disclosed in U.S. Ser. No. 09/212,898, filed Dec. 16, 1998, for “System and Method of Adjusting Display Characteristics of a Displayable Data File Using An Ergonomic Computer Input Device,” whose contents are incorporated herein by reference.

Scrolling through a document via the wheel on a wheeled mouse is helpful in that it provides useful document handling without the need to access the keyboard or predefined scroll bars. However, as a document's size changes or the needs of a user change (for example, from drafting a document to editing or reviewing a completed draft), the user may desire to change the scrolling mode. Changing modes requires navigating to a mouse preferences page, switching the scrolling mode, changing (when appropriate) the number of lines to scroll with every rotational notch in the wheel, and finally returning to the underlying document. These combinations of steps detract from the ease of using the scrolling feature of a wheeled mouse. Accordingly, an easier technique for switching between scrolling modes is needed.

SUMMARY

An improved scrolling technique is disclosed. Through monitoring the rotational speed of the wheel as well as the number of notches through which it is rotated, the scrolling mode is modified. At a slow rotational speed, one line is scrolled per notch on the wheel. Rotating faster increases the number of lines to be scrolled from one line per notch to a predefined number (for example, three) lines per notch or an increasing number of lines per notch (for example, four, seven, eleven, etc.). By rotating through a number of notches within a given time interval, the scrolling mode changes from a number of lines per notch to a page (or pages) per notch.

In various embodiments, the following may be predefined and/or set by the user: the rotational speed (or time between notches) at which the system switches from scrolling one line per notch to scrolling multiple lines per notch, the number of lines to scroll at the multiple lines per notch rate or the number of lines to increase the scrolling of multiple lines by with each notch, the number of notches through which a user needs to scroll before switching to the page scrolling mode, and the time between the first notch and the last notch in a series to trigger the page scrolling mode.

The invention is described in terms of a computer mouse having a wheel. However, it will be recognized that other input forms may be used including trackballs with a separate wheel, trackballs with a separate function for accelerated scrolling, tablets with a wheel, and any other input device having an input that allows for rotation. Further, while the disclosure includes references to notches on a wheel, it is appreciated that any scrolling input may be used including a scroll feature of a computer input device without notches, but rather by distance traveled by the rotating scrolling element.

These and other novel advantages, details, embodiments, features and objects of the present invention will be apparent to those skilled in the art from following the detailed description of the invention, the attached claims and accompanying drawings, listed herein, which are useful iii explaining the invention.

BRIEF DESCRIPTION OF DRAWINGS

FIGS. 1A and 1B show a mouse having a wheel.

FIGS. 2A through 2D show documents navigated through accelerated scrolling in accordance with embodiments of the invention.

FIG. 3 shows process steps that determine when different scrolling modes are to be entered.

FIG. 4 shows a user interface for modifying user preferences in accordance with embodiments of the present invention.

DETAILED DESCRIPTION

The present invention relates to accelerating the scrolling feature of wheeled mice. While the invention is described in relation to scrolling through a document, it is appreciated that any content may be used including, but not limited to, pages from the Internet, images, spreadsheets, calendars, and kind of windows that have scroll bars. Also, scrolling through non-viewable media is also considered part of the invention including scrolling through audio and video files. The invention may be practiced using C. Also, it is appreciated that other languages may be used including C++, assembly language, and the like.

In general, the distance scrolled through a document depends on the speed and length of the rotation of the wheel. When the wheel is rotated slowly, the document scrolls a single line per notch. When the wheel is rotated at a greater speed, the document scrolls at multiple lines per notch. When the wheel is rotated for a predetermined number of notches in short enough time, the scrolling technique shifts to scrolling a page at a time.

FIG. 2A shows document 201 with lines 202A, 202B, 202C, 202D, 202E, etc. These lines are shown starting at the top of the document but may be referenced anywhere in the document as scrolling through the document may be considered a relative movement as opposed to an absolute movement.

FIG. 2A provides an example of scrolling one line at a time. Here, the wheel 106 is rotated below a predefined rate. For example, this rate may be 150 ms per notch. As shown in FIG. 2A, a viewable portion 201 of a document including a number of lines 202A, 202B, etc. is shown. In some embodiments, viewable portion 201 may represent a page of textual document, where the page is larger then a user's screen. In other embodiments, it may represent the image itself that is displayed on a user's screen. When scrolled down, the displayed image is moved up in relation to the image displayed on the user's display device 112. Scrolling the first line is represented by arrow 205. Scrolling a second line (actuated by scrolling through a second notch) is represented through arrow 206. This may repeat as long as the rotational rate of the wheel is below the predefined rate.

FIG. 2B shows the scrolling mode shifting from one line per notch to multiple lines per notch. Here, the number of lines scrolled per notch is three. However, it is appreciated that any number of lines may be specified per a predefined value or user preference.

The scrolling of three lines per notch is shown through the arrows 207 and 208. Arrow 205 remains resident on FIG. 2B as this reflects that the document was scrolled one line prior to entry to the multiple line-scrolling mode. In an alternative embodiment, the execution of the scrolling through one line (205) may be delayed for a short time period (for example, the predefined time described above of 150 ms) to see if additional scrolling requests have been received by the computer system.

FIG. 2C shows lines 202A through 202E on document 201 as described with respect to FIG. 2A. Here, each scrolling request results in a scrolling of a page. When rotated a notch, the displayed image shifts from page 201 to page 203 as reflected by arrow 09. Rotating the wheel to the next notch results in scrolling to the next page as represented by arrow 210. As described above, page 201 may comprise the viewable portion of a user's display. Alternatively, it may comprise a physical page in the displayed document of which only a portion is displayed at any given time.

FIG. 2D, similar to FIG. 2B above, shows scrolling with an increasing number of lines per scroll. Here, arrows 210 and 211 show an increasing number of lines scrolled per notch.

FIG. 3 relates to a process for determining whether to change scrolling modes. The following provides a list of the variables used in relation to the flowchart as shown in FIG. 3:

-   -   T=current time     -   L=time of last notch     -   F=time of first notch in series     -   X=index of notch where page time check occurs     -   N=maximum time between two notches in a series     -   P=maximum time between first and x-th notch to trigger page         scroll mode     -   M=a flag indicating whether page scroll mode has been entered     -   S=number of lines to scroll in this request     -   Q=number of lines to add to S at each notch in series

The variables X, N, P, and Q may be predefined in the system. Alternatively, they may be available for user modification through setting of preferences for the scrolling function. In this situations, a user may navigate a series of windows to a scrolling preferences page where the modifications to the values of the variables may be made. This is shown in greater detail with respect to FIG. 4, described below.

As to variable F, the series may be defined as beginning with a notch after a pause of a predetermined interval, for example, 1 second.

Referring to FIG. 3, once a notch is detected at step 301, step 302 is executed in which it is determined whether the difference in time between the current time and the time of the last notch is less than or equal to the value N (the maximum preset time between two notches in a series in order to shift to the multiple line scrolling mode). If no, the counter C is set to 1, the variable F (the time of the first notch in a series) is set to the current time, and the page mode flag M is set to false (step 304). If yes to step 302, C is incremented in step 303. The time of the last notch L is set to the current time T in step 305.

Next, in step 306, it is determined whether page mode has been entered (by determining whether flag M has been set to true). If yes, the system scrolls one page (step 307) then ends this module (step 313) and waits for another notch. If no, the system checks whether the number of notches in the series C is greater than or equal to X. X represents the number of notches at which the system checks to see if the page scrolling mode should be entered. If yes, step 309 is executed in which the flag M is set to true (indicating that the page mode should be entered), pending scroll requests are cleared, and the command to scroll one page is executed. Step 309 is followed by step 310 where the system waits for the next notch. If no, step 311 is executed where it is determined how many lines to scroll by the following equation: S=1+Q*(C−1). Next, S lines are scrolled. Finally, step 312 is executed where the system waits for the next notch.

If a stream of slow notches is received, the system will scroll one notch at a time. If a stream of fast notches is received, the scrolling will be as follows: scroll one line, scroll four lines, scroll seven lines, etc. (in this example, Q=3). Here, each new notch (provided that the page mode has not been entered) results in a scrolling of an increasing number of lines.

In an alternate embodiment, the system may scroll a fixed number of lines per new notch in the multiple page mode. Here, the equation for S may be S=1 for C=1; S=Q for C>1.

FIG. 4 shows a preferences page for setting of values for accelerated scrolling characteristics defined herein. The page 401 shows the areas 402-405 for setting of the values of variables X, N, P, and Q, respectively. Initial values for these variables may be as follows:

-   -   X=4     -   N=130 ms     -   P=80 ms     -   Q=3         It will be appreciated that the above values are given by         example. Alternative values may be used. Further, as to the         values of N and P, these may be given, not in milliseconds, but         rather in iterations of the screen refresh rate. For example,         using a 60 Hz refresh rate, N may be set at 8/60. At a 75 Hz         refresh rate, N may be set to 10/75 for a similar response. The         shifting of the values (for instance, N and P) in order to         maintain similar time values may be made automatically in         accordance with the changing of refresh rates (e.g., changing         from 60 Hz to 75 Hz).

Finally, while not shown in FIG. 4, another preference box may be included to allow for scrolling of multiple pages per notch.

In the examples described herein, the scrolling is shown in the down direction. Scrolling in the up direction is equally part of the invention. Also, in the case of additional scrolling wheels being added to mice, scrolling side to side is equally appreciated. Further, multiple acceleration directions (including side-to-side) may be achieved through using the above described acceleration for a single wheel in combination with another mouse button or the like. For example, the above-described invention may be practiced through accelerated scrolling in the Y-direction (up and down) through normal operation of the wheel. Accelerated scrolling in the X or Z directions may be practiced through depression of the wheel or another mouse button.

Embodiments include queuing each scroll request for execution. Alternative embodiments include pre-processing the scroll requests (for example, for scrolling in different directions) so as to eliminate conflicting scroll requests. An example of the latter is the system receiving scroll requests to scroll down (for instance, scroll down 7 lines) immediately followed by scroll requests to scroll up (for instance, scroll up 3 lines). The system may pre-process the scroll requests to minimize the scrolling as shown to the user (for instance, scroll down 4 lines).

The above-described system may be used in a plurality of different signaling techniques including USB (universal serial bus), PS/2, Logitech, and the like that are applicable to mice control. The USB signaling technique is described herein for reference. Other signaling techniques may be used as are known in the art. The USB signaling technique includes four bytes. The first and second bytes are generally reserved for X and Y movement signals, respectively. The third byte relates to operation of the buttons of the mouse. The fourth byte may be tied to operation of the wheel in which the rotational position of the wheel is transmitted in this fourth byte.

Alternate embodiments of the USB signally technique exist. For example, the mouse may have integrated firmware in which the fourth byte provides the rest of the computer system with the number of lines to scroll rather than the absolute position of the wheel 106. Also, the mouse may include an accelerometer in the wheel. Here, the mouse may transmit actual accelerometer data to the rest of the system rather than a wheel position. Finally, the mouse may determine in which scrolling mode in which to operate and transmit this information to the remainder of the computing system.

In the foregoing specification, the present invention has been described with reference to specific exemplary embodiments thereof. Although the invention has been described in terms of various embodiments, those skilled in the art will recognize that various modifications, embodiments or variations of the invention can be practiced within the spirit and scope of the invention as set forth in the appended claims. All are considered within the sphere, spirit, and scope of the invention. The specification and drawings are, therefore, to be regarded in an illustrative rather than restrictive sense. Accordingly, it is not intended that the invention be limited except as may be necessary in view of the appended claims. 

1. A system for controlling scrolling of a display comprising: an input device having a rotational member including a wheel configured for movement; and a control system that monitors a first rate of rotation, a second rate of rotation, and a third rate of rotation of the rotational member, wherein the second rate of rotation is greater than the first rate of rotation, wherein the third rate of rotation is greater than the second rate of rotation, wherein the control system is configured to determine whether a rotation rate of the rotational member is at the first, second, or third rates of rotation, and wherein the control system is in a single-line scrolling mode at the first rate of rotation, the control system is in a plural-line scrolling mode at the second rate of rotation, and the control system is in a page scrolling mode at the third rate of rotation, wherein the control system is further configured to generate a flag for indicating that the page scrolling mode has been entered, said control system outputting at least one scroll signal for controlling the scrolling of said display in relation to the control system being in one of the first, second, and third rates of rotation; and wherein said control system outputs said at least one scroll signal to automatically scroll in either the single-line, plural-line, or page scrolling mode, wherein the control signal controls scrolling at a single line per notch of the wheel movement in the single-line mode, wherein the control signal controls scrolling at multiple lines per notch of the wheel movement in the plural-line mode, and wherein the control signal controls scrolling at a page per notch of the wheel movement in the page scrolling mode, wherein in the page scrolling mode, each notch associated with the wheel always scrolls a subsequent or immediately preceding page based on a direction of movement of the notch until the rotation rate falls below a predetermined amount of rate.
 2. A method for controlling scrolling of a display comprising the steps of: receiving signals indicative of operation of a rotational member including a wheel on a computer input device; monitoring a first rate of rotation, a second rate of rotation, and a third rate of rotation of the rotational member, wherein the second rate of rotation is greater than the first rate of rotation, wherein the third rate of rotation is greater than the second rate of rotation, and wherein the rate is defined as number of lines per notch; determining whether the rotational rate of the rotational member is at the first, second, or third rates of rotation; entering a single-line scrolling mode, a plural-line scrolling mode, or a page scrolling mode if the rotation rate is at the first, second, or third rates of rotation, respectively; generating a flag for indicating that the page scrolling mode has been entered; processing said signals in accordance with the entered mode; outputting scroll control signals in accordance with said processing step, wherein said scroll control signals control said display to automatically scroll at least one page in the page scrolling mode, wherein said scroll control signals control said display to automatically scroll one line in the single-line scrolling mode, wherein said scroll control signals control said display to automatically scroll multiple lines in the plural-line scrolling mode; and wherein in the page scrolling mode, each notch associated with the wheel always scrolls a subsequent or immediately preceding page based on a direction of movement of the notch until the rotational rate falls below a predetermined amount of rate.
 3. A computer-readable physical storage medium having computer readable instructions stored thereon for controlling scrolling of a display, the computer readable instructions when executed cause a computer system to execute steps of: receiving signals indicative of operation of a rotational member including a wheel on a computer input device; monitoring a first rate of rotation, a second rate of rotation, and a third rate of rotation of the rotational member, wherein the second rate of rotation is greater than the first rate of rotation, wherein the third rate of rotation is greater than the second rate of rotation, and wherein the rate is defined as number of lines per notch; determining whether the rotational rate of the rotational member is at the first, second, or third rates of rotation; entering a single-line scrolling mode, a plural-line scrolling mode, or a page scrolling mode if the rotation rate is at the first, second, or third rates of rotation, respectively; generating a flag for indicating that the page scrolling mode has been entered; processing said signals in accordance with the entered mode; outputting scroll control signals in accordance with said processing step, wherein said scroll control signals control said display to automatically scroll at least one page in the page scrolling mode, wherein said scroll control signals control said display to automatically scroll one line in the single-line scrolling mode, wherein said scroll control signals control said display to automatically scroll multiple lines in the plural-line scrolling mode; and wherein in the page scrolling mode, each notch associated with the wheel always scrolls a subsequent or immediately preceding page based on a direction of movement of the notch until the rotational rate falls below a predetermined amount of rate.
 4. An input device for scrolling an image relative to a display screen in first and second perpendicular scrolling directions, comprising: a rotatable member configured to cause scrolling of the image in the first direction responsive to rotation thereof; and the rotatable member being configured to cause scrolling of the image in the second direction responsive to rotation and a scroll direction signal for the second direction thereof; and a sensing system configured for monitoring a first rate of rotation, a second rate of rotation, and a third rate of rotation of said rotational member, wherein the second rate of rotation is greater than the first rate of rotation, wherein the third rate of rotation is greater than the second rate of rotation, wherein the rate is defined as a number of lines per notch and said sensing system configured to determine whether a rotation rate of the rotational member is at the first, second, or third rates of rotation and output at least one signal indicative of the respective rate of rotation, wherein a single-line scrolling mode is entered at the first rate of rotation, a plural-line scrolling mode is entered at the second rate of rotation, and a page scrolling mode is entered at the third rate of rotation, wherein the sensing system is configured to monitor a relative rate between the first and second rates of rotation, and outputting at least one scroll signal in relation to the modes, the sensing device further configured to generate a flag for indicating said switching; wherein said at least one scroll signal is monitored to determine a change in mode and the scrolling of said image, in at least one of said first direction and second direction, is automatically controlled based on the change in mode, wherein the scroll signal controls scrolling at a single line per rotatable member movement in the single-line mode, wherein the scroll signal controls scrolling at multiple lines per rotatable member movement in the plural-line mode, wherein the scroll signal controls scrolling at a page per rotatable member movement in the page scrolling mode, and wherein scrolling in said first direction involves scrolling a subsequent page or a predetermined number of lines per notch associated with said rotational member until the relative rate falls below a predetermined amount of rate and wherein scrolling in said second direction involves scrolling a preceding page or a preceding predetermined number of lines per notch associated with said rotational member until the relative rate falls above the predetermined amount of rate.
 5. A method of controlling scrolling of a display comprising the steps of: receiving signals indicative of the operation of a rotational member including a wheel on a computer input device; said wheel having at least a portion extending from an outer surface of the input device; said portion being configured to receive a manual movement to provide rotation of said rotational member; said rotational member having a plurality of notches; monitoring a first rate of rotation, a second rate of rotation, and a third rate of rotation of the rotational member, wherein the second rate of rotation is greater than the first rate of rotation, wherein the third rate of rotation is greater than the second rate of rotation, and wherein the rate is defined as number of lines per notch; determining whether the rotation rate of the rotational rate of the rotational member is at the first, second, or third rates of rotation; entering a single-line scrolling mode, a plural-line scrolling mode, or a page scrolling mode if the rotation rate is at the first, second, or third rates of rotation, respectively; generating a flag for indicating that the page scrolling mode has been entered; processing said signals in accordance with the entered mode; and outputting scroll control signals in accordance with said processing step, wherein said scroll control signals control said display to automatically scroll one line in the single-line scrolling mode, wherein said scroll control signals control said display to automatically scroll multiple lines in the plural-line scrolling mode, wherein said scroll control signals control said display to automatically scroll a page in the page scrolling mode, and wherein said automatically scrolling is based on subsequent to or immediately preceding predetermined number of lines per notch of said rotational member in a direction of movement of the notch until a relative rate of the rotational member falls below a predetermined amount of rate.
 6. The method according to claim 5, wherein said computer input device is a mouse. 